package com.engine4cloud.tdf.supervision.dto.result;

import com.engine4cloud.tdf.supervision.dto.JzdxChangePlaceDTO;
import com.engine4cloud.tdf.supervision.dto.JzdxDieDTO;
import com.engine4cloud.tdf.supervision.dto.JzdxPrisonDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;
import java.util.List;

/**
 * 矫正对象-解除-请求对象
 *
 * @author wenjie
 * @date 2024-04-11 17:40:57
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "矫正对象-解除-请求对象")
public class JzdxReleaseResultDTO extends CreateTimeResultDTO {

    /**
     * 主键
     */
    @Schema(description = "主键")
    private Long id;


    /**
     * 人员编号
     */
    @Schema(description = "人员编号")
    private String rybh;

    /**
     * 解矫类型
     */
    @Schema(description = "解矫类型", example = "01")
    private String jjlx;

    /**
     * 解矫日期
     */
    @Schema(description = "解矫日期", example = "2024-01-01")
    private LocalDate jjrq;

    /**
     * 矫正期间表现
     */
    @Schema(description = "矫正期间表现", example = "01")
    private String jzqjbx;

    /**
     * 认罪态度
     */
    @Schema(description = "认罪态度", example = "01")
    private String rztd;

    /**
     * 矫正期间是否参加职业技能培训
     */
    @Schema(description = "矫正期间是否参加职业技能培训", example = "0")
    private String sfcjzyjnpx;

    /**
     * 矫正期间是否获得职业技能证书
     */
    @Schema(description = "矫正期间是否获得职业技能证书", example = "0")
    private String sfhdzyjnzs;

    /**
     * 技术特长及等级
     */
    @Schema(description = "技术特长及等级", example = "头发特别长")
    private String jstcjdj;

    /**
     * 危险性评估
     */
    @Schema(description = "危险性评估", example = "01")
    private String wxxpg;

    /**
     * 家庭联系情况
     */
    @Schema(description = "家庭联系情况", example = "01")
    private String jtlxqk;

    /**
     * 矫正期间特殊情况备注及帮教建议
     */
    @Schema(description = "矫正期间特殊情况备注及帮教建议")
    private String tsqkbzjbjjy;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String bz;

    /**
     * 收监执行
     */
    @Schema(description = "收监执行，当终止类型选择收监执行时，该项必填")
    private JzdxPrisonDTO prison;

    /**
     * 死亡
     */
    @Schema(description = "死亡，当终止类型选择死亡时，该项必填")
    private JzdxDieDTO die;

    /**
     * 执行地变更
     */
    @Schema(description = "执行地变更，当终止类型选择执行地变更时，该项必填")
    private JzdxChangePlaceDTO changePlace;

    /**
     * 矫正解除相关法律文书
     */
    @Schema(description = "矫正解除相关法律文书")
    private List<JzdxFileResultDTO> instrumentList;
}